home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
networking
/
mail
/
mh
/
doc
/
mh6.tty
< prev
next >
Wrap
Text File
|
1990-04-11
|
28KB
|
1,031 lines
Changes to
The Rand MH Message Handling System:
MH #6.5 for 4.3BSD UNIX
Marshall T. Rose
Northrop Research and Technology Center
One Research Park
Palos Verdes Peninsula, CA 90274
April 12, 1990
Abstract
This document describes the user-visible change to the UCI ver-
sion of the Rand MH system that were made from mh.5 to MH #6.5.
It is based on the mh.6 changes document, but has been updated to
accurately reflect the MH distributed with 4.3bsd UNIX1 . This docu-
ment does not describe bug-fixes, per se, or internal changes, unless
these activities resulted in a visible change for the MH user.
This document is meant to supplement, not supersede, the stan-
dard MH User's manual[MRose85 ].
Comments concerning this documentation should be addressed to
the Internet mailbox Bug-MH@ICS.UCI.EDU.
________________________________________________
T0his document (version #2.10) was LaTEX set April 12, 1990 with lplain v2.09-10/29/85.
1 UNIX is a trademark of AT&T Bell Laboratories.
1
Acknowledgements
The MH system described herein is based on the original Rand MH system.
It has been extensively developed (perhaps too much so) by Marshall T. Rose
and John L. Romine at the University of California, Irvine. Einar A. Stef-
ferud, Jerry N. Sweet, and Terry P. Domae provided numerous suggestions
to improve the UCI version of MH . Of course, a large number of people have
helped MH along. The list of "MH immortals" is too long to list here. How-
ever, Van Jacobson deserves a special acknowledgement for his tireless work
in improving the performance of MH . Some programs have been speeded-up
by a factor of 10 or 20. All of users of MH , everywhere, owe a special thanks
to Van.
Disclaimer
The Regents of the University of California wish to make it known that:
Although each program has been tested by its contributor, no
warranty, express or implied, is made by the contributor or the
University of California, as to the accuracy and functioning of
the program and related program material, nor shall the fact of
distribution constitute any such warranty, and no responsibility
is assumed by the contributor or the University of California in
connection herewith.
2
Conventions
In this document, certainaL TE X -formatting conventions are adhered to:
1. The names of UNIX commands, such as comp , are presented in text
italics.
2. Arguments to programs, such as `msgs', are presented in typewriter
style and delimited by single-quotes.
3. UNIX pathnames and envariables, such as
/usr/uci/ and $SIGNATURE ;
are presented in slanted roman.
4. Text presenting an example, such as
comp -editor zz
is presented in typewriter style.
3
General Changes
Unlike the changes between mh.4 and mh.5 , a large number of user-visible
changes have been made in mh.6 . These changes have been in the form of
bug fixes and several generalizations. The majority of these will not affect
novice users. In addition, mh.6 is a great deal faster than mh.5 : all programs
have been speeded-up significantly, thanks to work done by Van Jacobson as
part of the process of including mh.6 in the 4.3bsd UNIX distribution.
This document describes all user-visible changes to mh.5 from it's initial
release to the intermediate release of MH #6.5.
System-5 Support
In addition to support for bsd UNIX, V7 UNIX and Xenix2 variants of UNIX,
MH finally has support for the AT&T variant of UNIX, System 5. Hopefully
this will greatly expand the number of system which can run MH . Ironically,
it appears that five ports of earlier versions of MH (including mh.5 ) were
done, but news of the work was not widespread.3
Documentation
Several new documents have been included in the mh.6 distribution: The
paper MH.5: How to process 200 messages a day and still get some real work
done was presented at the 1985 Summer Usenix Conference and Exhibition
in Portland, Orgeon. Another paper, MH: A Multifarious User Agent, has
been accepted for publication by Computer Networks. Both describe MH , the
former from a more technical and somewhat humorous perspective, the latter
from a more serious and research-oriented perspective. In addition, a third
paper has been included, Design of the TTI Prototype Trusted Mail Agent,
which describes a so-called "trusted" mail agent built on top of MH . This
paper was presented at the Second International Symposium on Computer
Message Systems in Washington, D.C. A fourth paper, MZnet: Mail Service
for Personal Micro-Computer Systems, is also included. This paper, which
________________________________________________
2 Xenix is a trademark of Microsoft Corporation.
3 In fact, three groups in one large organization ported MH independently, each without
knowledge of the others' work.
4
was presented at the First International Symposium on Computer Message
Systems in Nottingham, U.K., describes a CP/M4 -based version of MH .
In addition, the MH tutorial, The Rand MH Message Handling System:
Tutorial, and, The Rand MH Message Handling System: The UCI BBoards
Facility, have both been updated by Jerry N. Sweet.
For MH administrators (PostMasters and the like), there's an entirely
new document, The Rand MH Message Handling System: Administrator's
Guide. It explains most of the "ins and outs" of maintaining an MH system.
Finally, all of the manual entries and the MH manual have had a thorough
working over. The documentation is expanded, more accurate, and more
detailed.
Help Listings
When any MH command is invoked with the `-help' switch, in addition to
listing the syntax of the command and version information, the MH config-
uration options will be listed. MH has so many configuration options, that
when debugging problems, this information is invaluable.
The MH Profile
There are two new profile entries worth noting: MH-Sequences tells MH the
name of the file to record public sequences in. Users of vm , a proprietary,
visual front-end to MH , make use of this to disable the public sequences
feature of MH .
The profile entry Unseen-Sequence names those sequences which should
be defined as those messages recently incorporated by inc . The show program
knows to remove messages from this sequence once it thinks they have been
seen. If this profile entry is not present, or is empty, then no sequences are
defined. Otherwise, for each name given, the sequence is first zero'd and then
each message incorporated is added to the sequence. As such, this profile
entry is rather analogous to the Previous-Sequence entry in the user's MH
profile.
In addition, the Alternate-Mailboxes entry in the profile has been ex-
panded to support simple wild-carding. Also, the default for this profile entry
________________________________________________
4 CP/M is a trademark of Digital Research Corporation.
5
is now the user's mail-id at any host. This change was made since MH can
no longer reliably figure out what the user's real outgoing address looks like.
Finally, when the install-mh program is automatically invoked by MH , it
won't prompt the user for information. Instead, it notes that it's setting up
the default environment. In addition, the MH administrator may set-up a
file called mh.profile in the MH library area which is consulted by install-mh
when initializing the user's .mh__profile .
The MH Context
The folder , scan , and show programs have been modified to update the user's
MH context prior to writing to the user's terminal. This allows the MH user
interrupt output to the terminal and still have the expected context. This is
especially useful to interrupt long scan listings. This change also introduces
a subtle bug between show and messages denoted by the Unseen-Sequence.
See show (1) for the details.
Addresses and 822 support
MH now fully supports the RFC-822 routing syntax for addresses (it used to
recognize the syntax, but ignore the information present). In addition, there
are three major modes for support of non-822 addressing in MH :
- BERK
This is useful on sites running SendMail . It doesn't support full 822-
style addressing, in favor of recognizing such formats as ACSnet, and
so on. For sites that can't run in an 822-compliant environment, this is
the option to use (at the price of sacrificing some of the power of 822-
style addressing). This also drastically reduces the address formatting
facilities described below.
- DUMB
Although not as liberal as BERK, the DUMB option is useful on sites
in which the message transport system conforms to the 822 standard,
but wants to do all the defaulting itself.
- BANG
From out in left field, the BANG option favors UUCP -style addressing
6
over 822-style addressing. Hopefully when all the UUCP sites around
get around to adopting domain-style addresses, this option won't be
needed.
The ap program (mentioned momentarily) and the ali program both sup-
port a `-normalize' switch indicate if addresses should be resolved to their
"official" hostnames.
New Programs
There are five new programs available: The ap program is the MH stand-
alone address parser. It's useful for printing address in various formats (and
for debugging address strings). The dp program is similar, but works on
dates instead of addresses.
The msgchk program checks for new mail, possibly using the Post Office
Protocol, POP, described below.
A new receive mail hook, the rcvstore program, which was written by
Julian L. Onions is available.
Finally, a visual front-end to msh called vmh has been included. (This
program is discussed in greater detail later on.)
Message Numbering
MH now no longer restricts the number of messages which may reside in a
folder (beyond that of system memory constraints). This means that message
numbers larger than 2000 are permissible. Hopefully this will make life easier
for people reading the network news using MH .
The WhatNow Shell
In mh.6 , there is now the concept of a unified What now? processor that
the four composition programs, comp , dist , forw , and repl all invoke. This
permits a greater flexibility in building mail applications with MH . As a
result, there's a new program, whatnow , which acts as the default What now?
program. Consult the whatnow (1) manual entry for all the details. The only
important user-visible change is the headers option went away, which wasn't
used that much anyway.
7
The only other thing worth noting is that unless MH has been compiled
with the UCI option, the user's $HOME/.signature file is not consulted for
the user's personal name.
Format Strings
A general format string facility has been added to allow MH users to tailor
the output of certain commands.
The inc , scan , ap , and dp programs all consult a file containing format
strings. Format strings, which look a lot like printf (3) strings, give these MH
commands precise instructions on how to format their output.
As a result, the inc and scan programs no longer have the `-size', `-
nosize', `-time', `-notime', `-numdate', and `-nonumdate' switches. These
switches have been replaced with the `-form formatfile' switch and the
`-format string' switch. The former directs the program to consult the
named file for the format strings. The latter directs the program to use the
named string as the format. To get the behavior of the old `-time' option,
use the `-form scan.time' option. Similarly, to get the effect of `-size', use
`-form scan.size'.
A fun form to use is `-form scan.timely' with scan . Try it sometime.
The repl command uses a file containing format files to indicate how the
reply draft should be constructed. Note that reply templates prior to mh.6
are incompatible with mh.5 .5 Don't worry though, it's quite easy to convert
the templates by hand. (Those clever enough to have written a reply template
to begin with won't have any problem.)
Similarly, when the forw program is constructing a digest, it uses a file
containing format strings to indicate how to build the encapsulating draft.
Finally, you can use these facilities in mhl as well.
News
The depreciated MH news system (from mh.1 ) is now de-supported. Use the
"hoopy" BBoards facility instead.
________________________________________________
5 In fact, reply templates between mh.6 and MH #6.5 are imcompatible.
8
BBoards
MH maintainers take note: the default home directory for the bboards login
has changed from /usr/bboards/ to /usr/spool/bboards/ . Use the bbhome
directive in your MH configuration file to set it back to the old value if you
wish.
In addition, the aliases field for a BBoard in the BBoards file is now
deemed useful only for addressing, not for user input to bbc . This means
when giving the name of a BBoard to bbc , only the official name should be
used.
A final note for mailsystem maintainers: the MMDF-II BBoards chan-
nel and the SendMail BBoards mailer have been modified to use the stan-
dard message encapsulation format when returning failed messages to the list
maintainer. This means that the failure notices that the maintainer receives
can simply be burst .
New Switches in bbc
The bbc program permits you to specify the mshproc to use on the command
line by using the `-mshproc program' option. There's also a `-rcfile file'
option which does "the obvious thing". In addition, options which aren't
understood by bbc are passed along to the mshproc.
In addition, the following commands pass any unrecognized switches on
to the program that they invoke: bbc , next , show , prev , and vmh .
Distributed BBoards
If both BBoards and POP (see the next section) are enabled, then distributed
BBoards can be supported on top of the POP service. This allows the MH
user to read BBoards on a server machine instead of the local host (which
saves a lot of wasted disk space when the same BBoards are replicated sev-
eral times at a site with several hosts). See the Administrator's Guide for
information on how this can be made completely transparent to the MH user.
If you have several machines at your site running 4.2bsd UNIX and con-
nected by an Ethernet6 (or other high-speed LAN), you want this software.
________________________________________________
6 Ethernet is a trademark of the Xerox Corporation.
9
Visual Front-End to msh
A simple window management protocol has been implemented for MH pro-
grams that might wish to act as a back-end to a sophisticated visual front-
end.
The first implementation of a server side (front-end) program is vmh ,
which uses curses (3) to maintain a split-screen interface. Perhaps look for a
mhtool program for the SUN next!
The msh program has been modified to speak the client side (back-end)
of this protocol, if so directed. At present, msh is the only program in the
MH distribution which implements the client side of the window management
protocol.
Updates in msh
Prior to quitting, the msh command now asks if the packf 'd file you've been
perusing should be updated if you've modified it and the file is writable by
you. The file can be modified by using burst , rmm , rmm , or sortm commands.
The file can also be modified by using the refile command without the `-link'
option. (Or course, the `-link' option doesn't actually link anything to the
file.)
Distributed Mail
MH now contains a powerful facility for doing distributed mail (having MH
reside on a host different than the message transport agent). For general
information, consult either the MH.5: How to process 200 messages a day
and still get some real work done paper, or the MH: A Multifarious User
Agent paper. For specific information, consult the Administrator's Guide.
Here's a brief synopsis:
This POP facility in MH is based on a modification of the ARPA Post
Office Protocol (POP). A POP subscriber is a remote user, on a POP client
host, that wishes to pick-up mail on a POP service host.
There are two ways to administer POP:
- Naive Mode
Each user-id in the passwd (5) file is considered a POP subscriber. No
10
changes are required for the mailsystem on the POP service host. How-
ever, this method requires that each POP subscriber have an entry in
the password file. The POP server will fetch the user's mail from wher-
ever maildrops are kept on the POP service host. This means that if
maildrops are kept in the user's home directory, then each POP sub-
scriber must have a home directory.
- Smart Mode
This is based on the notion that the list of POP subscribers and the
list of login users are completely separate name spaces. A separate
database (similar to the BBoards (5) file) is used to record information
about each POP subscriber. Unfortunately, the local mailsystem must
be changed to reflect this. This requires two changes (both of which
are simple):
1. Aliasing
The aliasing mechanism is augmented so that POP subscriber ad-
dresses are diverted to a special delivery mechanism. MH comes
with a program, popaka (8), which generates the additional infor-
mation to be put in the mailsystem's alias file.
2. Delivery
A special POP delivery channel (for MMDF-II ) or POP mailer (for
SendMail ) performs the actual delivery (mh.6 supplies both). All
it really does is just place the mail in the POP spool area.
Clever mailsystem people will note that the POP mechanism is really
a special case of the more general BBoards mechanism.
These two different philosophies are not compatible on the same POP service
host: one or the other, but not both, may be run.
In addition, there is one user-visible difference, which the administrator
controls the availability of. The difference is whether the POP subscriber
must supply a password to the POP server:
- ARPA standard method
This uses the standard ARPA technique of sending a username and a
password. The appropriate programs (inc , msgchk , and possibly bbc )
will prompt the user for this information.
11
- UNIX remote method
This uses the Berkeley UNIX reserved port method for authentication.
This requires that the two or three mentioned above programs be setuid
to root. (There are no known holes in any of these programs.)
These two different philosophies are compatible on the same POP service
host: to selectively disable RPOP for hosts which aren't trusted, either mod-
ify the .rhosts file in the case of POP subscribers being UNIX logins, or zero
the contents of network address field of the pop (5) file for the desired POP
subscribers.
The inc command also has two other switches when MH is enabled for
POP: `-pack file' and `-nopack'. Normally, inc will use the POP to incor-
porate mail from a POP service host into an MH folder (+inbox). However,
there are some misguided individuals who prefer to msh to read their mail-
drop. By using the `-pack file' option, these individuals can direct inc to
fetch their maildrop from the POP service host and store it locally in the
named file. As expected, inc will treat the local file as a maildrop, performing
the appropriate locking protocols. And, if the file doesn't exist, the user is
now asked for confirmation.
Rcvmail hooks
In order to offer users of MH increased rcvmail hook functionality, the slocal
program has been upgraded to support the semantics of the MMDF-II mail-
delivery mechanism. This means that users of mh.6 can maintain identi-
cal .maildelivery files regardless of the underlying transport system. See
mhook (1) for all the details.
Change in rcvdist
The rcvdist rcvmail hook now uses the MH formatting facility when redis-
tributing a message.
Field change in rcvpack
The rcvpack rcvmail hook now adds the field name Delivery-Date: instead
of Cron-Date: to messages it pack s.
12
GNU Emacs Support
James Larus' mh-e macro package for GNU Emacs (version 17) is included
in the distribution. When loaded in Emacs, this provides a handy front-end.
Other Changes
Here's the miscellany:
Continuation Lines
Alias files used by MH , display templates used by mhl , and format files used
by forw , repl , and scan all support a standard continuation line syntax. To
continue a line in one of these files, simply end the line with the backslash
character (`n'). All the other files used by MH are in 822-format, so the
822-continuation mechanism is used.7
Default Date Format
MH now uses numeric timezones instead of locally-meaningful alpha time-
zones when generating mail. This change was made to encourage the use
of unambiguous, globally-meaningful timezone strings. A local configura-
tion option can disable this correct behavior. All of the mhl templates have
been modified to use locally-meaningful alpha timezones when displaying
messages.
New switch in ali
The ali command now has a `-noalias' switch to prevent system-wide aliases
from being interpreted.
Modifications to show
The `-format', `-noformat', `-pr', and `-nopr' options to show have gone away
in favor of a more general mechanism. The `-showproc program' option tells
________________________________________________
7 Looking back, it would have been best had all files in MH used the 822-format.
13
show (or next or prev ) to use the named program as the showproc. The
`-noshowproc' option tells show , et. al., to use the cat (1) program instead of
a showproc. As a result, the profile entry prproc is no longer used.
Switch change in inc
The `-ms ms-file' switch in inc has been changed to `-file name' to be
more consistent.
Front-End to mhl
When outputting to a terminal, the mhl program now runs the program
denoted by the profile entry moreproc. If this entry is not present, the
default is the UCB more program. If the entry is non-empty, then that
program is spliced between mhl and the user's terminal. The author uses the
less program as his moreproc.
Of course, if mhl isn't outputting to a terminal, then moreproc is not
invoked.
Finally, to aid in the construction of replies, a prefix string may be speci-
fied for the body component of the message being replied-to. Simply use the
component= construct in mhl for body:.
Confirmation in packf
If the file specified by the `-file name' switch doesn't exist, the user is now
asked for confirmation.
Complex Expressions in pick
The pick command now handles complex boolean expressions.
Defaults change in prompter and burst
The `-prepend' option is now the default in prompter . The `-noinplace'
option is now the default in burst .
14
Fcc:s and post
If multiple Fcc:s for a message are specified during posting, post will try much
harder to preserve links.
Interactive option in rmf
The rmf program has been changed to support an `-interactive' switch.
If given, then the user is prompted regarding whether the folder should be
deleted. If the folder to be removed is not given by the user, this switch is
defaulted to on.
Trusted Mail Interface
MH now has an interface for so-called "trusted mail" applications. Although
the modifications to MH to support this are in the public domain, the actual
library that MH uses is not. Contact Professor David J. Farber (Farber@UDel)
for more information.
References
[MRose85] Marshall T. Rose and John L. Romine. The Rand MH Message
Handling System: User's Manual. Department of Information
and Computer Science, University of California, Irvine, mh.6 edi-
tion, November, 1985. UCI Version.
15